<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GLib Reference Manual: GLib Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GLib Reference Manual">
<link rel="next" href="glib.html" title="GLib Overview">
<meta name="generator" content="GTK-Doc V1.25.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="book">
<div class="titlepage">
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GLib Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
      for GLib 2.48.1

      The latest version of this documentation can be found on-line at
      <a class="ulink" href="https://developer.gnome.org/glib/unstable/" target="_top">https://developer.gnome.org/glib/unstable/</a>.
    </p></div>
</div>
<hr>
</div>
<div class="toc"><dl class="toc">
<dt><span class="chapter"><a href="glib.html">GLib Overview</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="glib-building.html">Compiling the GLib package</a></span><span class="refpurpose"> — How to compile GLib itself</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-cross-compiling.html">Cross-compiling the GLib package</a></span><span class="refpurpose"> — 
How to cross-compile GLib
</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-programming.html">Writing GLib Applications</a></span><span class="refpurpose"> — 
General considerations when programming with GLib
</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-compiling.html">Compiling GLib Applications</a></span><span class="refpurpose"> — 
How to compile your GLib application
</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-running.html">Running GLib Applications</a></span><span class="refpurpose"> — 
How to run and debug your GLib application
</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-changes.html">Changes to GLib</a></span><span class="refpurpose"> — 
Incompatible changes made between successing versions of GLib
</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-resources.html">Mailing lists and bug reports</a></span><span class="refpurpose"> — 
Getting help with GLib
</span>
</dt>
</dl></dd>
<dt><span class="chapter"><a href="glib-fundamentals.html">GLib Fundamentals</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="glib-Version-Information.html">Version Information</a></span><span class="refpurpose"> — variables and functions to check the GLib version</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Basic-Types.html">Basic Types</a></span><span class="refpurpose"> — standard GLib types, defined for ease-of-use
    and portability</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Standard-Macros.html">Standard Macros</a></span><span class="refpurpose"> — commonly-used macros</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Type-Conversion-Macros.html">Type Conversion Macros</a></span><span class="refpurpose"> — portably storing integers in pointer variables</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Byte-Order-Macros.html">Byte Order Macros</a></span><span class="refpurpose"> — a portable way to convert between different byte orders</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Bounds-checked-integer-arithmetic.html">Bounds-checking integer arithmetic</a></span><span class="refpurpose"> — a set of helpers for performing checked integer arithmetic</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Numerical-Definitions.html">Numerical Definitions</a></span><span class="refpurpose"> — mathematical constants, and floating point decomposition</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Miscellaneous-Macros.html">Miscellaneous Macros</a></span><span class="refpurpose"> — specialized macros which are not used often</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Atomic-Operations.html">Atomic Operations</a></span><span class="refpurpose"> — basic atomic integer and pointer operations</span>
</dt>
</dl></dd>
<dt><span class="chapter"><a href="glib-core.html">GLib Core Application Support</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="glib-The-Main-Event-Loop.html">The Main Event Loop</a></span><span class="refpurpose"> — manages all available sources of events</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Threads.html">Threads</a></span><span class="refpurpose"> — portable support for threads, mutexes, locks,
    conditions and thread private data</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Thread-Pools.html">Thread Pools</a></span><span class="refpurpose"> — pools of threads to execute work concurrently</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Asynchronous-Queues.html">Asynchronous Queues</a></span><span class="refpurpose"> — asynchronous communication between threads</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Dynamic-Loading-of-Modules.html">Dynamic Loading of Modules</a></span><span class="refpurpose"> — portable method for dynamically loading 'plug-ins'</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Memory-Allocation.html">Memory Allocation</a></span><span class="refpurpose"> — general memory-handling</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Memory-Slices.html">Memory Slices</a></span><span class="refpurpose"> — efficient way to allocate groups of equal-sized
    chunks of memory</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-IO-Channels.html">IO Channels</a></span><span class="refpurpose"> — portable support for using files, pipes and sockets</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Error-Reporting.html">Error Reporting</a></span><span class="refpurpose"> — a system for reporting errors</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Warnings-and-Assertions.html">Message Output and Debugging Functions</a></span><span class="refpurpose"> — functions to output messages and help debug applications</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Message-Logging.html">Message Logging</a></span><span class="refpurpose"> — versatile support for logging messages
    with different levels of importance</span>
</dt>
</dl></dd>
<dt><span class="chapter"><a href="glib-utilities.html">GLib Utilities</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="glib-String-Utility-Functions.html">String Utility Functions</a></span><span class="refpurpose"> — various string-related functions</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Character-Set-Conversion.html">Character Set Conversion</a></span><span class="refpurpose"> — convert strings between different character sets</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Unicode-Manipulation.html">Unicode Manipulation</a></span><span class="refpurpose"> — functions operating on Unicode characters and
    UTF-8 strings</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Base64-Encoding.html">Base64 Encoding</a></span><span class="refpurpose"> — encodes and decodes data in Base64 format</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Data-Checksums.html">Data Checksums</a></span><span class="refpurpose"> — computes the checksum for data</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Data-HMACs.html">Secure HMAC Digests</a></span><span class="refpurpose"> — computes the HMAC for data</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-I18N.html">Internationalization</a></span><span class="refpurpose"> — gettext support macros</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Date-and-Time-Functions.html">Date and Time Functions</a></span><span class="refpurpose"> — calendrical calculations and miscellaneous time stuff</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-GTimeZone.html">GTimeZone</a></span><span class="refpurpose"> — a structure representing a time zone</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-GDateTime.html">GDateTime</a></span><span class="refpurpose"> — a structure representing Date and Time</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Random-Numbers.html">Random Numbers</a></span><span class="refpurpose"> — pseudo-random number generator</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Hook-Functions.html">Hook Functions</a></span><span class="refpurpose"> — support for manipulating lists of hook functions</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Miscellaneous-Utility-Functions.html">Miscellaneous Utility Functions</a></span><span class="refpurpose"> — a selection of portable utility functions</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Lexical-Scanner.html">Lexical Scanner</a></span><span class="refpurpose"> — a general purpose lexical scanner</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Timers.html">Timers</a></span><span class="refpurpose"> — keep track of elapsed time</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Spawning-Processes.html">Spawning Processes</a></span><span class="refpurpose"> — process launching</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-File-Utilities.html">File Utilities</a></span><span class="refpurpose"> — various file-related functions</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-URI-Functions.html">URI Functions</a></span><span class="refpurpose"> — manipulating URIs</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Hostname-Utilities.html">Hostname Utilities</a></span><span class="refpurpose"> — Internet hostname utilities</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Shell-related-Utilities.html">Shell-related Utilities</a></span><span class="refpurpose"> — shell-like commandline handling</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Commandline-option-parser.html">Commandline option parser</a></span><span class="refpurpose"> — parses commandline options</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Glob-style-pattern-matching.html">Glob-style pattern matching</a></span><span class="refpurpose"> — matches strings against patterns containing '*'
                    (wildcard) and '?' (joker)</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Perl-compatible-regular-expressions.html">Perl-compatible regular expressions</a></span><span class="refpurpose"> — matches strings against regular expressions</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-regex-syntax.html">Regular expression syntax</a></span><span class="refpurpose"> — 
syntax and semantics of regular expressions supported by GRegex
</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Simple-XML-Subset-Parser.html">Simple XML Subset Parser</a></span><span class="refpurpose"> — parses a subset of XML</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Key-value-file-parser.html">Key-value file parser</a></span><span class="refpurpose"> — parses .ini-like config files</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Bookmark-file-parser.html">Bookmark file parser</a></span><span class="refpurpose"> — parses files containing bookmarks</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Testing.html">Testing</a></span><span class="refpurpose"> — a test framework</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-UNIX-specific-utilities-and-integration.html">UNIX-specific utilities and integration</a></span><span class="refpurpose"> — pipes, signal handling</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Windows-Compatibility-Functions.html">Windows Compatibility Functions</a></span><span class="refpurpose"> — UNIX emulation on Windows</span>
</dt>
</dl></dd>
<dt><span class="chapter"><a href="glib-data-types.html">GLib Data Types</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="glib-Doubly-Linked-Lists.html">Doubly-Linked Lists</a></span><span class="refpurpose"> — linked lists that can be iterated over in both directions</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Singly-Linked-Lists.html">Singly-Linked Lists</a></span><span class="refpurpose"> — linked lists that can be iterated in one direction</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Double-ended-Queues.html">Double-ended Queues</a></span><span class="refpurpose"> — double-ended queue data structure</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Sequences.html">Sequences</a></span><span class="refpurpose"> — scalable lists</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Trash-Stacks.html">Trash Stacks</a></span><span class="refpurpose"> — maintain a stack of unused allocated memory chunks</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Hash-Tables.html">Hash Tables</a></span><span class="refpurpose"> — associations between keys and values so that
    given a key the value can be found quickly</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Strings.html">Strings</a></span><span class="refpurpose"> — text buffers which grow automatically
    as text is added</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-String-Chunks.html">String Chunks</a></span><span class="refpurpose"> — efficient storage of groups of strings</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Arrays.html">Arrays</a></span><span class="refpurpose"> — arrays of arbitrary elements which grow
    automatically as elements are added</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Pointer-Arrays.html">Pointer Arrays</a></span><span class="refpurpose"> — arrays of pointers to any type of data, which
    grow automatically as new elements are added</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Byte-Arrays.html">Byte Arrays</a></span><span class="refpurpose"> — arrays of bytes</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Balanced-Binary-Trees.html">Balanced Binary Trees</a></span><span class="refpurpose"> — a sorted collection of key/value pairs optimized
                    for searching and traversing in order</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-N-ary-Trees.html">N-ary Trees</a></span><span class="refpurpose"> — trees of data with any number of branches</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Quarks.html">Quarks</a></span><span class="refpurpose"> — a 2-way association between a string and a
    unique integer identifier</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Keyed-Data-Lists.html">Keyed Data Lists</a></span><span class="refpurpose"> — lists of data elements which are accessible by a
                    string or GQuark identifier</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Datasets.html">Datasets</a></span><span class="refpurpose"> — associate groups of data elements with
                    particular memory locations</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-GVariantType.html">GVariantType</a></span><span class="refpurpose"> — introduction to the GVariant type system</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-GVariant.html">GVariant</a></span><span class="refpurpose"> — strongly typed value datatype</span>
</dt>
<dt>
<span class="refentrytitle"><a href="gvariant-format-strings.html">GVariant Format Strings</a></span><span class="refpurpose"> — varargs conversion of GVariants</span>
</dt>
<dt>
<span class="refentrytitle"><a href="gvariant-text.html">GVariant Text Format</a></span><span class="refpurpose"> — textual representation of GVariants</span>
</dt>
</dl></dd>
<dt><span class="chapter"><a href="deprecated.html">Deprecated APIs</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="glib-Deprecated-Thread-APIs.html">Deprecated thread API</a></span><span class="refpurpose"> — old thread APIs (for reference only)</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Caches.html">Caches</a></span><span class="refpurpose"> — caches allow sharing of complex data structures
                    to save resources</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Relations-and-Tuples.html">Relations and Tuples</a></span><span class="refpurpose"> — tables of data which can be indexed on any
                    number of fields</span>
</dt>
<dt>
<span class="refentrytitle"><a href="glib-Automatic-String-Completion.html">Automatic String Completion</a></span><span class="refpurpose"> — support for automatic completion using a group
                    of target strings</span>
</dt>
</dl></dd>
<dt><span class="chapter"><a href="tools.html">GLib Tools</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="glib-gettextize.html">glib-gettextize</a></span><span class="refpurpose"> — gettext internationalization utility</span>
</dt>
<dt>
<span class="refentrytitle"><a href="gtester.html">gtester</a></span><span class="refpurpose"> — test running utility</span>
</dt>
<dt>
<span class="refentrytitle"><a href="gtester-report.html">gtester-report</a></span><span class="refpurpose"> — test report formatting utility</span>
</dt>
</dl></dd>
<dt><span class="index"><a href="api-index-full.html">Index</a></span></dt>
<dt><span class="index"><a href="api-index-deprecated.html">Index of deprecated symbols</a></span></dt>
<dt><span class="index"><a href="api-index-2-2.html">Index of new symbols in 2.2</a></span></dt>
<dt><span class="index"><a href="api-index-2-4.html">Index of new symbols in 2.4</a></span></dt>
<dt><span class="index"><a href="api-index-2-6.html">Index of new symbols in 2.6</a></span></dt>
<dt><span class="index"><a href="api-index-2-8.html">Index of new symbols in 2.8</a></span></dt>
<dt><span class="index"><a href="api-index-2-10.html">Index of new symbols in 2.10</a></span></dt>
<dt><span class="index"><a href="api-index-2-12.html">Index of new symbols in 2.12</a></span></dt>
<dt><span class="index"><a href="api-index-2-14.html">Index of new symbols in 2.14</a></span></dt>
<dt><span class="index"><a href="api-index-2-16.html">Index of new symbols in 2.16</a></span></dt>
<dt><span class="index"><a href="api-index-2-18.html">Index of new symbols in 2.18</a></span></dt>
<dt><span class="index"><a href="api-index-2-20.html">Index of new symbols in 2.20</a></span></dt>
<dt><span class="index"><a href="api-index-2-22.html">Index of new symbols in 2.22</a></span></dt>
<dt><span class="index"><a href="api-index-2-24.html">Index of new symbols in 2.24</a></span></dt>
<dt><span class="index"><a href="api-index-2-26.html">Index of new symbols in 2.26</a></span></dt>
<dt><span class="index"><a href="api-index-2-28.html">Index of new symbols in 2.28</a></span></dt>
<dt><span class="index"><a href="api-index-2-30.html">Index of new symbols in 2.30</a></span></dt>
<dt><span class="index"><a href="api-index-2-32.html">Index of new symbols in 2.32</a></span></dt>
<dt><span class="index"><a href="api-index-2-34.html">Index of new symbols in 2.34</a></span></dt>
<dt><span class="index"><a href="api-index-2-36.html">Index of new symbols in 2.36</a></span></dt>
<dt><span class="index"><a href="api-index-2-38.html">Index of new symbols in 2.38</a></span></dt>
<dt><span class="index"><a href="api-index-2-40.html">Index of new symbols in 2.40</a></span></dt>
<dt><span class="index"><a href="api-index-2-42.html">Index of new symbols in 2.42</a></span></dt>
<dt><span class="index"><a href="api-index-2-44.html">Index of new symbols in 2.44</a></span></dt>
<dt><span class="index"><a href="api-index-2-46.html">Index of new symbols in 2.46</a></span></dt>
<dt><span class="index"><a href="api-index-2-48.html">Index of new symbols in 2.48</a></span></dt>
<dt><span class="glossary"><a href="annotation-glossary.html">Annotation Glossary</a></span></dt>
</dl></div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25.1</div>
</body>
</html>